package com.esunny.online.service.impl;

import com.esunny.online.dao.TagDao;
import com.esunny.online.domain.entity.ResourceTag;
import com.esunny.online.domain.entity.Tag;
import com.esunny.online.service.ResourceTagService;
import com.esunny.online.service.TagService;
import com.esunny.online.util.SpringBeanUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Author: Bcc
 * @Date: 2020/8/7 10:58
 * @Description:
 * @modified By:
 * @version: $
 */

@Service
public class TagServiceImpl implements TagService {

    @Resource
    private TagDao tagDao;

    @Override
    public List<Tag> getTagList() {
        return tagDao.getTagList();
    }

    /**
     * 添加标签
     * @param tag
     */
    @Override
    public void addTag(Tag tag) {
        tagDao.addTag(tag);
    }

    /**
     * 删除标签
     *
     * @param tag
     */
    @Override
    public void deleteTag(Tag tag) {
        // 删除标签
        tagDao.deleteTag(tag);
        // 设置资源-标签查找条件
        ResourceTag resourceTag = new ResourceTag();
        resourceTag.setTagid(tag.getId());
        // 删除资源-标签
        ResourceTagService resourceTagService = SpringBeanUtil.getBean(ResourceTagService.class);
        resourceTagService.deleteResourceTag(resourceTag);
    }

    /**
     * 更改资源标签状态
     * @param tag
     */
    @Override
    public void updateTagStatus(Tag tag) {
        // 更改标签删除状态
        Tag tag1 = tagDao.getTagByQuery(tag);
        tag1.setIsdelete(!tag1.getIsdelete());
        tagDao.updateTagStatus(tag1);

        // 设置资源-标签查找条件
        ResourceTag resourceTag = new ResourceTag();
        resourceTag.setTagid(tag.getId());
        // 更改资源-标签删除状态
        ResourceTagService resourceTagService = SpringBeanUtil.getBean(ResourceTagService.class);
        resourceTagService.updateResourceTagIsDelete(resourceTag);
    }
}
